Relational databases, according to the conventional art, can be utilized to store vast amounts of data. Efficiently capturing and manipulating the data into information is becoming more critical as storage capacity and computing power increases. The capturing of data and the manipulation of data to obtain information typically involves competing design considerations.
Accordingly, database systems delivering very large storage capacity and performant data querying typically comprise a data capture server, a database and an application server. The data capture server is dedicated to capturing data and saving it in the database. The application server is dedicated to running queries against the data saved in the database.
Referring to FIG. 1 a block diagram of an online analytic processing (OLAP) 110 type application server and a relational online analytic processing (ROLAP) 120 type application server according to the conventional art is shown. As depicted in FIG. 1, the ROLAP system 120 runs queries directly against either an online transaction processing (OLTP) type source database 130 or a data warehouse type source database 140. The ROLAP 120 type application server provides access to the most recently available data in the source database 130, 140. However, the performance of the system is reduced as a result of such queries running against the source database 130, 140. Furthermore, the end-user typically needs to be proficient with structured query language (SQL), or the like, to generate the particular report they desire.
The OLAP system 110 retrieves a pre-computed query from a data cube 150 in response to a query request from an end user. The data cube 150 is populated with a plurality of queries. The plurality of queries are pre-computed from either the OLTP database 130 or the data warehouse database 140. The OLAP 110 type application server provides increased performance by allowing queries to be pre-computed during times of low system utilization. Pre-computing the queries also typically relieves the end user from being versed in SQL. However, the data provided to the user is only as current as the last update of the pre-computed query results. Furthermore, if an end user desires a query that has not been pre-computed, they typically need an administrator to generate an appropriate query in SQL.